"""
管理员视图层
"""

from core import src
from interface import admin_interface


# 添加账户功能
def add_account():
    is_admin = input("是否添加管理员账户？(y/n)：").strip().lower()
    if is_admin == "y":
        src.sign_up(is_admin=True)
    else:
        src.sign_up(is_admin=False)


# 冻结账户功能
def freeze_account():
    while True:
        account_name = input("请输入需要冻结/解冻的账户名：").strip()
        is_freeze = input(f"按任意键确认/n退出").strip().lower()

        if is_freeze == "exit":
            break

        # 调用逻辑接口层，实现冻结/解冻
        flag, msg = admin_interface.freeze_account_interface(account_name)
        print(msg)
        if flag:
            break


# 给用户充值功能
def recharge_to_user():

    username = input("请输入需要充值的用户名：").strip()
    src.recharge(username)


# 功能字典
func_dict = {
    "0": ("返回首页",),
    "1": ("添加账户", add_account),
    "2": ("冻结账户", freeze_account),
    "3": ("给用户充值", recharge_to_user),
}


# 管理员视图层主程序
def main():
    while True:
        print("购物管理系统 管理员".center(30, "="))
        for num in func_dict:
            print(f"{num} --- {func_dict[num][0]}".ljust(30, " "))
        print("我是有底线的".center(30, "="))
        choice = input("您要进入的功能编号：").strip()
        if choice not in func_dict:
            print("输入有误，请重新输入！")
            continue
        if choice == "0":
            break
        func_dict.get(choice)[1]()
